#ifndef __UDSF_CRC_C_
#define __UDSF_CRC_C_

#include "udf_global.h"
/*
*   notice:
*   UDSF 同UDF编程：不可调用cstd-lib,只可调用"sdk_ifs_udk_cfg.h"、"sys_api.h"中列出的API函数。
*   UDSF文件内函数均需使用static修饰符，且UDF中以#include "UDSF.c"形式引用
*/

static uint16_t udsf_get_crc(uint8_t* data,int len) __attribute__((unused));

static uint16_t udsf_get_crc(uint8_t* data,int len)
{
	/*crc reset*/
	SYSC->SWRST &= ~CRC_SWRST_N_Msk;
	SYSC->SWRST |= CRC_SWRST_N_Msk;
	
	/*crc clk enable*/
	SYSC->CLK_EN |= CRC_EN_Msk;
		
	CRC->CON = 0x01;
	CRC->INI = 0x6363;
	
	for(int j=0; j<len; j++)
	{
		CRC->DIN = data[j]; 				
	}
	
	uint16_t crc = CRC->DOUT;
	CRC->CON = 0x00; //disable crc function

	/*crc clk disable*/
	SYSC->CLK_EN &= (~CRC_EN_Msk);
	
	return crc;
}

#endif
